package com.rfsp.common.util;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class OSCmd {
	
	private static final Logger logger = LoggerFactory.getLogger(OSCmd.class);
	
	public static boolean execute(String cmd) throws IOException{
		logger.debug("exec commond: " + cmd);
		Process pro = Runtime.getRuntime().exec(cmd);
		String ret = readInputFromProcess(pro);
		logger.debug("exec result: \n" + ret);
		return ret!=null;
	}
	
	private static String readInputFromProcess(Process pro) throws IOException{
        StringBuffer sb = new StringBuffer("");
        String line=null;
        BufferedReader reader = new BufferedReader(new InputStreamReader(pro.getInputStream()));
        try {
            while((line=reader.readLine())!=null){
                sb.append(line).append("\r\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException("获取本地进程输出流失败");
        }finally{
            if(reader!=null)
            	reader.close();	
        }
        return sb.toString();
	}
	

	/**
	 *   键值对<br />
		 os.name 	操作系统的名称<br />
		 os.arch 	操作系统的架构<br />
		 os.version 操作系统的版本<br />
		 user.name 	用户的账户名称<br />
		 user.home 	用户的主目录<br />
		 user.dir 	用户的当前工作目录<br />
		 file.separator 	文件分隔符（在 UNIX 系统中是“/”）<br />
		 path.separator 	路径分隔符（在 UNIX 系统中是“:”）<br />
		 line.separator 	行分隔符（在 UNIX 系统中是“/n”）<br />
		 java.version 	Java 运行时环境版本<br />
		 java.vendor 	Java 运行时环境供应商<br />
		 java.vendor.url 	Java 供应商的 URL<br />
		 java.home 	Java 安装目录<br />
		 java.vm.specification.version 	Java 虚拟机规范版本<br />
		 java.vm.specification.vendor 	Java 虚拟机规范供应商<br />
		 java.vm.specification.name 	Java 虚拟机规范名称<br />
		 java.vm.version 	Java 虚拟机实现版本<br />
		 java.vm.vendor 	Java 虚拟机实现供应商<br />
		 java.vm.name 	Java 虚拟机实现名称<br />
		 java.specification.version 	Java 运行时环境规范版本<br />
		 java.specification.vendor 	Java 运行时环境规范供应商<br />
		 java.specification.name 	Java 运行时环境规范名称<br />
		 java.class.version 	Java 类格式版本号<br />
		 java.class.path 	Java 类路径<br />
		 java.library.path 	加载库时搜索的路径列表<br />
		 java.io.tmpdir 	默认的临时文件路径<br />
		 java.compiler 	要使用的 JIT 编译器的名称<br />
		 java.ext.dirs 	一个或多个扩展目录的路径<br />
	 * @param prop
	 * @return
	 * @throws IOException
	 */
	private static String getOSProperty(String prop) throws IOException{
		 Properties props=System.getProperties(); //获得系统属性集    
	     return props.getProperty(prop);
	}
	
	
	public static void main(String[] args) {
		try {
//			执行windows命令
//			ExeOSCommand.execugetOSPropertyte("cmd.exe /c zip -r C:/rfp/file/jasper.zip C:/rfp/file/jasper");

			String osName = OSCmd.getOSProperty("oewee"); //操作系统名称    
			logger.info(osName);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

